package com.example.designpatterns.prototype;

import java.util.HashMap;
import java.util.Map;

/**
 * 原型注册表
 * 用于存储和管理原型对象
 */
public class PrototypeRegistry {
    private Map<String, Prototype> prototypes = new HashMap<>();
    
    /**
     * 注册原型对象
     * @param key 原型对象的唯一标识
     * @param prototype 原型对象
     */
    public void registerPrototype(String key, Prototype prototype) {
        prototypes.put(key, prototype);
    }
    
    /**
     * 移除原型对象
     * @param key 原型对象的唯一标识
     */
    public void removePrototype(String key) {
        prototypes.remove(key);
    }
    
    /**
     * 获取原型对象的克隆
     * @param key 原型对象的唯一标识
     * @return 克隆的原型对象
     */
    public Prototype getClone(String key) {
        Prototype prototype = prototypes.get(key);
        return prototype != null ? prototype.clone() : null;
    }
} 